<?php
	$request_uri = $_SERVER["REQUEST_URI"];
	$pieces = explode("/", $request_uri);
	$aux = count($pieces) - 3;
	$require_string = "";
	for($count = 0; $count < $aux; $count++)
		$require_string .= "../";
	
	require_once($require_string . "session.php");
	require_once($require_string . "control/Action.php");
	require_once($require_string . "model/siscoc/Usuario.php");
	require_once($require_string . "model/siscoc/Funcionario.php");
	
	class InserirUsuarioAction extends Action {
		
		public function __construct() {
			parent::__construct();
		}
		
		public function get_data() {
			$usuario = new Usuario();
			$funcionario = new Funcionario();
			
			$funcionario->setNome($_POST["nome"]);
			$funcionario->setCpf($_POST["cpf"]);
			$funcionario->setCep($_POST["cep"]);
			$funcionario->setTelefone($_POST["telefone"]);
			$funcionario->setCelular($_POST["celular"]);
			$funcionario->setEmail($_POST["email"]);
			$funcionario->setEndereco($_POST["endereco"]);
			$funcionario->setComplemento($_POST["complemento"]);
			$funcionario->setBairro($_POST["bairro"]);
			$funcionario->setCidade($_POST["cidade"]);
			
			$usuario->setApelido($_POST["apelido"]);
			$usuario->setSenha($_POST["senha"]);
			
			$this->set_action_object(array("usuario" => $usuario, "funcionario" => $funcionario));
		}
		
		public function validate_data() {
			$action_object = $this->get_action_object();
			$error = $this->get_error();
			
			$usuario = $action_object["usuario"];
			$funcionario = $action_object["funcionario"];
			
			if($funcionario->getNome() == NULL || $funcionario->getNome() == "") {
				$error[] = "Nome do funcionário é obrigatório";
			}
			
			$this->set_error($error);
		}
		
		function status($result) {
			if($result == INPUT) {
				return "view/usuario/inserir_usuario.php";
			}
			else if($result == SUCCESS) {
				$action_object = $this->get_action_object();
				$usuario = $action_object["usuario"];
				$funcionario = $action_object["funcionario"];
				$funcionario->save();
				$usuario->setFuncionario($funcionario->getId());
				$usuario->save();
				return "view/index.php";
			}
			return NULL;
		}
	}
?>